//
// Created by Martin on 2021/10/25.
//

#include <iostream>
#include <list>

#define MAX_NUM      5000

using namespace std;

int main()
{
    int test_num, n;
    list<int> a;

    cin >> test_num; // 测试用例数
    while (test_num--) {
        cin >> n; // 新兵人数
        if (n > MAX_NUM) continue; // 新兵人数超限

        a.clear();
        int k = 2;

        // 存入每个士兵的编号1..n
        for (int i = 1; i <= n; ++i) {
            a.push_back(i);
        }

        while (a.size() > 3) { // 队列中还有超过3人, 就需要继续报数
            int cnt = 1;
            for (auto it = a.begin(); it != a.end(); ) {
                if (cnt++ % k == 0) { // 删去喊"K"的士兵
                    it = a.erase(it); // 删去当前位置it后, 会改变iterator. erase返回的是下一个元素地址
                }
                else ++it;
            }

            k = (k == 2) ? 3 : 2; // 改变叫号值
        }

        // 打印队伍中剩余人数 (必定 <= 3)
        for (auto it = a.begin(); it != a.end(); ++it) {
            if (it != a.begin()) cout << " ";
            cout << *it;
        }
        cout << endl;
    }

    return 0;
}